package analyzer

// AnalyzerType 分析器类型
type AnalyzerType string

const (
	// AnalyzerTypePostgreSQL PostgreSQL分析器
	AnalyzerTypePostgreSQL AnalyzerType = "postgresql"
	// AnalyzerTypeTiDB TiDB分析器
	AnalyzerTypeTiDB AnalyzerType = "tidb"
)

// NewAnalyzer 创建SQL分析器
// 参数:
//   - analyzerType: 分析器类型
//   - enableDebug: 是否启用调试模式
//
// 返回值:
//   - SQLAnalyzer: 分析器实例
func NewAnalyzer(analyzerType AnalyzerType, enableDebug bool) SQLAnalyzer {
	switch analyzerType {
	case AnalyzerTypePostgreSQL:
		return NewPostgreSQLAnalyzer(enableDebug)
	case AnalyzerTypeTiDB:
		return NewTiDBAnalyzer(enableDebug)
	default:
		// 默认返回PostgreSQL分析器
		return NewPostgreSQLAnalyzer(enableDebug)
	}
}

// DefaultAnalyzer 创建默认的分析器实例
// 返回值:
//   - SQLAnalyzer: 分析器实例
func DefaultAnalyzer() SQLAnalyzer {
	return NewPostgreSQLAnalyzer(false)
}
